package 剑指专题.模拟;


/*
 * Author：江松
 * Date：2023/4/1 20:08
 *
 扑克牌顺子：
 1,排序遍历
 2,使用哈希表，且维护最大最小值，在不重复的情况下，最大值最小值差<5即可
 */

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class Main2 {
    public boolean IsContinuous(int [] numbers) {
        Set<Integer> set=new HashSet<>();
        int mx=0,mn=100;
        for(int i:numbers){
            if(i==0)continue;
            if(set.contains(i))return false;
            else {
                set.add(i);
                mx=Math.max(mx,i);
                mn=Math.min(mn,i);
            }
        }
        return mx-mn<5;
    }
    /*
    public boolean IsContinuous(int [] numbers) {
        int len=numbers.length;
        if(len<1)return false;
        Arrays.sort(numbers);
        int i=0,cnt=0;
        for(;i<len;++i){
            if(numbers[i]!=0)break;
            cnt++;
        }
        for(;i<len-1;++i){
            int l=numbers[i],r=numbers[i+1];
            if(l==r)return false;
            if(r-l-1>cnt)return false;
            if(r-l==1)continue;
            else{
                cnt-=r-l-1;
            }
        }
        return true;
    }
    */
}
